from minio import Minio
from django.conf import settings

# 创建 MinIO 客户端
def get_minio_client():
    return Minio(
        settings.MINIO_ENDPOINT,
        access_key=settings.MINIO_ACCESS_KEY,
        secret_key=settings.MINIO_SECRET_KEY,
        secure=False  # 如果你使用的是 HTTPS，则设置为 True
    )

# 上传文件到 MinIO
def upload_file_to_minio(file, filename):
    client = get_minio_client()

    # 检查文件是否存在
    if not client.bucket_exists(settings.MINIO_BUCKET):
        client.make_bucket(settings.MINIO_BUCKET)

    # 上传文件
    client.put_object(
        settings.MINIO_BUCKET,
        filename,
        file,
        length=-1,  # -1 表示读取整个文件
        part_size=10*1024*1024  # 文件分片上传的大小，默认为 10MB
    )

    # 返回文件的 MinIO 路径
    return f"{settings.MINIO_BUCKET}/{filename}"
